Software applications that reside on a server and are accessed by a client through a network are generally referred to as hosted applications, and may also be referred to as Internet-based applications, web-based applications, or online applications. Examples of hosted applications include ecommerce websites and web-based email applications. Before additional features are deployed as part of an existing hosted application, the additional features may be tested to identify possible bugs. Typically, additional features are tested by the developer during the development stage using unit testing and by the quality assurance personnel after the development stage using functional testing. Unit testing is a test that determines whether a coded feature works properly in isolation. For example, unit testing may indicate to a developer whether a coded tax function calculates tax correctly. However, unit testing may not indicate whether a coded feature will work correctly once deployed in an environment (e.g., will the calculated tax be displayed properly in a clients application) or whether the deployed coded feature will cause other errors to occur in an environment.
Functional testing attempts to determine whether an additional coded function, once deployed, will cause errors anywhere in an environment system. Typically functional testing is time consuming and performed after the development cycle by the quality assessment personnel other than the developer. Thus, a developer must wait until receiving a report from quality assurance to correct aspects of a coded feature, which in turn lengthens the overall development cycle.